void main() {
  print(1 + 10);

  // 变量：计算机中记录计算结果
  // 语法：var 变量 = 表达式;
  var ret = 1 + 10;
  print(ret);

  // 变量的特点：
  /* 
    1.可以修改
    2.支持类型推断：修改变量时会检查类型
   */

  // 常量：用于记录不可变的数据，不可用修改
  // 关键字：const 和 final

  const a = 10;
  print(a);

  final b = 20;
  print(b);

  // const 与 final 的区别：
  /* 
    const 是编译期常量，用于记录程序在编译器就要能确定的值
    final 是运行期常量，用于记录程序在运行时确定的值
   */

  var x = 1;
  var y = 2;

  // final：运行时常量，值在运行时赋值
  final ret1 = x + y;
  // const：编译期常量，值在编译时赋值（以下在编辑器中会报错）
  // const ret2 = x + y;

  // num： 记录整数或浮点数
  num n1 = 10;
  n1 = 10.1;

  int n2 = 20;
  print(n2);

  double n3 = 30;
  print(n3);

  // bool 类型
  bool isLogin = true;
  print(isLogin);

  // 字符串
  String name = '坤坤';

  // 拼接字符串
  int age = 18;
  // String str = '我是${name}' + '，今年${age}岁';
  // 简写
  String str = '我是$name，今年$age岁';
  print(str);

  // String str = 1 + '1';
}
